/*
 * tarm_iic.h
 *
 *  Created on: 2019��10��26��
 *      Author: AN
 */

#ifndef SRC_MIDDLEWARE_TARM_IO_H_
#define SRC_MIDDLEWARE_TARM_IO_H_

#include "fsl_gpio.h"

//PORT
#define X_STP_P 0
#define Y_STP_P 1
#define Z_STP_P 1

#define X_DIR_P 1
#define Y_DIR_P 1
#define Z_DIR_P 1

#define EN_STEER_P 1

#define X_LIM_P 1
#define Y_LIM_P 1

//gpio
#define X_STP_PORT 0
#define Y_STP_PORT 1
#define Z_STP_PORT 1

#define X_DIR_PORT 1
#define Y_DIR_PORT 1
#define Z_DIR_PORT 1

#define EN_STEER_PORT 1

#define X_LIM_PORT 1
#define Y_LIM_PORT 1

//PIN
#define X_STP_PIN 15u
#define Y_STP_PIN 6u
#define Z_STP_PIN 7u

#define X_DIR_PIN 4U
#define Y_DIR_PIN 10U
#define Z_DIR_PIN 9U

#define EN_STEER_PIN 8U

#define X_LIM_PIN 5U
#define Y_LIM_PIN 1U


//SET
#define X_STP_SET GPIO_PortSet(GPIO, X_STP_PORT, 1u << X_STP_PIN)
#define Y_STP_SET GPIO_PortSet(GPIO, Y_STP_PORT, 1u << Y_STP_PIN)
#define Z_STP_SET GPIO_PortSet(GPIO, Z_STP_PORT, 1u << Z_STP_PIN)

#define X_DIR_SET GPIO_PortSet(GPIO, X_DIR_PORT, 1u << X_DIR_PIN)
#define Y_DIR_SET GPIO_PortSet(GPIO, Y_DIR_PORT, 1u << Y_DIR_PIN)
#define Z_DIR_SET GPIO_PortSet(GPIO, Z_DIR_PORT, 1u << Z_DIR_PIN)

#define EN_STEER_SET GPIO_PortSet(GPIO, EN_STEER_PORT, 1u << EN_STEER_PIN)

//RESET
#define X_STP_RESET GPIO_PortClear(GPIO, X_STP_PORT, 1u << X_STP_PIN)
#define Y_STP_RESET GPIO_PortClear(GPIO, Y_STP_PORT, 1u << Y_STP_PIN)
#define Z_STP_RESET GPIO_PortClear(GPIO, Z_STP_PORT, 1u << Z_STP_PIN)

#define X_DIR_RESET GPIO_PortClear(GPIO, X_DIR_PORT, 1u << X_DIR_PIN)
#define Y_DIR_RESET GPIO_PortClear(GPIO, Y_DIR_PORT, 1u << Y_DIR_PIN)
#define Z_DIR_RESET GPIO_PortClear(GPIO, Z_DIR_PORT, 1u << Z_DIR_PIN)

#define EN_STEER_RESET GPIO_PortClear(GPIO, EN_STEER_PORT, 1u << EN_STEER_PIN)

//GET
#define X_LIM GPIO_PinRead(GPIO, X_LIM_PORT, X_LIM_PIN)
#define Y_LIM GPIO_PinRead(GPIO, Y_LIM_PORT, Y_LIM_PIN)

/************ function **************/
void SteeringIO_Init(void);

#endif /* SRC_MIDDLEWARE_TARM_IIC_H_ */
